]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
popupMenu: Use relative rotation for arrows
authorCarlos Soriano <carlos.soriano89@gmail.com>
Tue, 18 Feb 2014 14:47:47 +0000 (15:47 +0100)
committerCarlos Soriano <carlos.soriano89@gmail.com>
Wed, 19 Feb 2014 12:44:26 +0000 (13:44 +0100)
Currently the animation of the arrows doesn't take
into account previous rotation.
Since in a incoming patch we will use one arrow
and rotate it to generate the four directions, we
need that the animation use relative rotation.

https://bugzilla.gnome.org/show_bug.cgi?id=720206

js/ui/popupMenu.js

index dc3a9f96b1446e6a5c16039249d6e7b2663e7e81..b51c7c79546e1cee8842954610907df226027758 100644 (file)
@@ -874,7 +874,7 @@ const PopupSubMenu = new Lang.Class({
             this.actor.height = 0;
             this.actor._arrowRotation = this._arrow.rotation_angle_z;
             Tweener.addTween(this.actor,
-                             { _arrowRotation: 90,
+                             { _arrowRotation: this.actor._arrowRotation + 90,
                                height: naturalHeight,
                                time: 0.25,
                                onUpdateScope: this,
@@ -887,7 +887,7 @@ const PopupSubMenu = new Lang.Class({
                                }
                              });
         } else {
-            this._arrow.rotation_angle_z = 90;
+            this._arrow.rotation_angle_z = this.actor._arrowRotation + 90;
         }
     },
 
@@ -907,7 +907,7 @@ const PopupSubMenu = new Lang.Class({
         if (animate) {
             this.actor._arrowRotation = this._arrow.rotation_angle_z;
             Tweener.addTween(this.actor,
-                             { _arrowRotation: 0,
+                             { _arrowRotation: this.actor._arrowRotation - 90,
                                height: 0,
                                time: 0.25,
                                onUpdateScope: this,
@@ -921,7 +921,7 @@ const PopupSubMenu = new Lang.Class({
                                },
                              });
         } else {
-            this._arrow.rotation_angle_z = 0;
+            this._arrow.rotation_angle_z = this.actor._arrowRotation - 90;
             this.actor.hide();
         }
     },